Head-mounted display device with stepper motors for moving displays

ABSTRACT

A head-mounted display device includes a first set of one or more lenses and a first display configured to provide visual data through the first set of one or more lenses. The head-mounted display device further includes a first stepper motor mechanically coupled to the first display, and the first stepper motor is configured to move the first display along a first axis by rotating a rotatable component of the first stepper motor. The head-mounted display device further includes a first electronic controller configured to (i) determine a first position of the first display, (ii) receive information identifying a second position of the first display, and (iii) generate one or more electrical signals that cause the first stepper motor to move the first display from the first position to the second position along the first axis.

RELATED APPLICATIONS

This application claims the benefit of, and priority to, U.S.Provisional Patent Application 62/778,854, entitled “Head-MountedDisplay Device with Stepper Motors for Moving Displays” filed Dec. 12,2018, which is incorporated by reference herein in its entirety. Thisapplication is related to U.S. patent application Ser. No. 16/530,892,entitled “Head-Mounted Display Device with Voice Coil Motors for MovingDisplays” filed on Aug. 2, 2019, U.S. patent application Ser. No.16/530,893, entitled “Head-Mounted Display Device with Voice Coil Motorsfor Moving Displays” filed on Aug. 2, 2019, and U.S. patent applicationSer. No. 16/530,896, entitled “Head-Mounted Display Device withDirect-Current (DC) Motors for Moving Displays” filed on Aug. 2, 2019,all of which are incorporated by reference herein in their entireties.

TECHNICAL FIELD

The present disclosure generally relates to enhancing head-mounteddisplay devices, and specifically to an actuator (e.g., one or morestepper motors) for adjusting a focal plane of projected images andcontrol methods for the actuator.

BACKGROUND

A head mounted display (HMD) can be used to simulate virtualenvironments. For example, stereoscopic images are displayed on adisplay inside the HMD to simulate the illusion of depth, and headtracking sensors estimate what portion of the virtual environment isbeing viewed by the user. However, conventional HMDs are often unable tocompensate for vergence and accommodation conflicts when renderingcontent, which may cause visual fatigue and nausea in users.

SUMMARY

One solution to the problem includes providing a head-mounted displaydevice that uses one or more stepper motors to move one or more displaysof the head-mounted display device. By moving the one or more displays,focal planes are adjusted, thereby reducing, alleviating, or eliminatingthe vergence and accommodation conflicts. The one or more stepper motorsare capable of moving the displays rapidly and quietly, therebyenhancing the user experience with the simulated virtual (or augmented)environment.

In accordance with some embodiments, a head-mounted display deviceincludes a first set of one or more lenses and a first displayconfigured to provide visual data through the first set of one or morelenses. The head-mounted display device also includes a first steppermotor mechanically coupled to the first display and/or the first set ofone or more lenses. The first stepper motor is configured to move thefirst display and/or the first set of one or more lenses along a firstaxis by rotating a rotatable component of the first stepper motor. Thehead-mounted display device further includes a first electroniccontroller configured to (i) determine a first position of the firstdisplay and/or the first set of one or more lenses, (ii) receiveinformation identifying a second position of the first display and/orthe first set of one or more lenses, and (iii) generate one or moreelectrical signals that cause the first stepper motor to move the firstdisplay and/or the first set of one or more lenses from the firstposition to the second position along the first axis.

In accordance with some embodiments, a head-mounted display deviceincludes a first set of one or more lenses and a first displayconfigured to provide visual data through the first set of one or morelenses. The head-mounted display device also includes a first steppermotor mechanically coupled to the first display. The first stepper motoris configured to move the first display along a first axis by rotating arotatable component of the first stepper motor. The head-mounted displaydevice further includes a first electronic controller configured to (i)determine a first position of the first display, (ii) receiveinformation identifying a second position of the first display, and(iii) generate one or more electrical signals that cause the firststepper motor to move the first display from the first position to thesecond position along the first axis without moving the first set of oneor more lenses.

In accordance with some embodiments, a head-mounted display deviceincludes a first set of one or more lenses and a first displayconfigured to provide visual data through the first set of one or morelenses. The head-mounted display device also includes a first steppermotor mechanically coupled to the first set of one or more lenses. Thefirst stepper motor is configured to move the first set of one or morelenses along a first axis by rotating a rotatable component of the firststepper motor. The head-mounted display device further includes a firstelectronic controller configured to (i) determine a first position ofthe first set of one or more lenses, (ii) receive informationidentifying a second position of the first set of one or more lenses,and (iii) generate one or more electrical signals that cause the firststepper motor to move the first set of one or more lenses from the firstposition to the second position along the first axis without moving thefirst display.

In accordance with some embodiments, a method performed at a firstelectronic controller of a head-mounted display device includesdetermining a first position of a first display and/or a first set ofone or more lenses of the head-mounted display device and receivinginformation identifying a second position of the first display and/orthe first set of one or more lenses. The method also includes generatingone or more electrical signals that cause a first stepper motor of thehead-mounted display device to move the first display and/or the firstset of one or more lenses from the first position to the secondposition. In some embodiments, the first stepper motor is mechanicallycoupled to the first display and/or the first set of one or more lensesvia a rotatable component of the first stepper motor.

In accordance with some embodiments, a first electronic controllerconfigured for use in a head-mounted display device includes one or moreprocessors/cores; and memory storing one or more programs for executionby the one or more processors/cores. The one or more programs includeinstructions for: determining a first position of a first display and/ora first set of one or more lenses of the head-mounted display device;receiving information identifying a second position of the first displayand/or the first set of one or more lenses; and generating one or moreelectrical signals that cause a first stepper motor of the head-mounteddisplay device to move the first display and/or the first set of one ormore lenses from the first position to the second position. In someembodiments, the first stepper motor is mechanically coupled to thefirst display and/or the first set of one or more lenses via a rotatablecomponent of the first stepper motor.

In accordance with some embodiments, a head-mounted display deviceincludes one or more processors/cores and memory storing one or moreprograms configured to be executed by the one or more processors/cores.The one or more programs include instructions for performing theoperations of any of the methods described herein. In accordance withsome embodiments, a non-transitory computer-readable storage mediumstores therein instructions that, when executed by one or moreprocessors/cores of a head-mounted display device, cause the device toperform the operations of any of the methods described herein.

In another aspect, a head-mounted display device is provided and thehead-mounted display device includes means for performing any of themethods described herein.

Thus, the disclosed embodiments provide a head-mounted display devicewith at least one stepper motor to move a display of the head-mounteddisplay device.

BRIEF DESCRIPTION OF DRAWINGS

For a better understanding of the various described embodiments,reference should be made to the Description of Embodiments below, inconjunction with the following drawings in which like reference numeralsrefer to corresponding parts throughout the figures and specification.

FIG. 1 is a block diagram illustrating an example system in accordancewith some embodiments.

FIG. 2 illustrates a head-mounted display device in accordance with someembodiments.

FIG. 3 is a schematic diagram illustrating a head-mounted display devicethat includes a camera for tracking eye position in accordance with someembodiments.

FIGS. 4A-4D show examples of adjusting a focal plane by moving a displayscreen and/or an optics block using a varifocal actuation block inaccordance with some embodiments.

FIGS. 5A-5C show a varifocal actuation block that includes a lead screwin accordance with some embodiments.

FIGS. 6A and 6B show a varifocal actuation block in accordance with someembodiments.

FIG. 7 shows a block diagram illustrating a control system for a steppermotor in accordance with some embodiments.

FIGS. 8A-8B are flow diagrams showing a method of adjusting positions ofan electronic display in accordance with some embodiments.

FIGS. 9A-9B illustrate example lookup tables that are used forcontrolling operation of a stepper motor in accordance with someembodiments.

FIG. 10 shows a graph illustrating an operation of an example filter inaccordance with some embodiments.

The figures depict embodiments of the present disclosure for purposes ofillustration only. One skilled in the art will readily recognize fromthe following description that alternative embodiments of the structuresand methods illustrated herein may be employed without departing fromthe principles, or benefits touted, of the disclosure described herein.

DETAILED DESCRIPTION

Reference will now be made to embodiments, examples of which areillustrated in the accompanying drawings. In the following description,numerous specific details are set forth in order to provide anunderstanding of the various described embodiments. However, it will beapparent to one of ordinary skill in the art that the various describedembodiments may be practiced without these specific details. In otherinstances, well-known methods, procedures, components, circuits, andnetworks have not been described in detail so as not to unnecessarilyobscure aspects of the embodiments.

It will also be understood that, although the terms first, second, etc.are, in some instances, used herein to describe various elements, theseelements should not be limited by these terms. These terms are used onlyto distinguish one element from another. For example, a first steppermotor could be termed a second stepper motor, and, similarly, a secondstepper motor could be termed a first stepper motor, without departingfrom the scope of the various described embodiments. The first steppermotor and the second stepper motor are both stepper motors, but they arenot the same stepper motor, unless specified otherwise.

The terminology used in the description of the various describedembodiments herein is for the purpose of describing particularembodiments only and is not intended to be limiting. As used in thedescription of the various described embodiments and the appendedclaims, the singular forms “a,” “an,” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. It will also be understood that the term “and/or” as usedherein refers to and encompasses any and all possible combinations ofone or more of the associated listed items. It will be furtherunderstood that the terms “includes,” “including,” “comprises,” and/or“comprising,” when used in this specification, specify the presence ofstated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof.

As used herein, the term “if” is, optionally, construed to mean “when”or “upon” or “in response to determining” or “in response to detecting”or “in accordance with a determination that,” depending on the context.Similarly, the phrase “if it is determined” or “if [a stated conditionor event] is detected” is, optionally, construed to mean “upondetermining” or “in response to determining” or “upon detecting [thestated condition or event]” or “in response to detecting [the statedcondition or event]” or “in accordance with a determination that [astated condition or event] is detected,” depending on the context.

A varifocal system provides dynamic adjustment of a focal plane of ahead-mounted display device to keep a user's eyes in a zone of comfortas vergence and accommodation change. In some embodiments, the systemuses an eye tracker to determine a gaze direction of the user and movesone or more optical components (e.g., a lens and/or an electronicdisplay) to ensure that the displayed image is located at a focal planethat corresponds to the determined gaze direction. The system, in someembodiments, physically moves an electronic display, an optical block,or both using various actuation devices, control system, and positionsensing mechanisms described herein.

FIG. 1 is a block diagram illustrating system 100 in accordance withsome embodiments. System 100 shown in FIG. 1 includes display device101, imaging device 160, and input interface 170. In some embodiments,all of display device 101, imaging device 160, and input interface 170are coupled to console 150.

Embodiments of system 100 may include or be implemented in conjunctionwith an artificial reality system. Artificial reality is a form ofreality that has been adjusted in some manner before presentation to auser, which may include, e.g., a virtual reality (VR), an augmentedreality (AR), a mixed reality (MR), a hybrid reality, or somecombination and/or derivatives thereof. Artificial reality content mayinclude completely generated content or generated content combined withcaptured (e.g., real-world) content. The artificial reality content mayinclude video, audio, haptic feedback, or some combination thereof, andany of which may be presented in a single channel or in multiplechannels (such as stereo video that produces a three-dimensional effectto the viewer). Additionally, in some embodiments, artificial realitymay also be associated with applications, products, accessories,services, or some combination thereof, that are used to, e.g., createcontent in an artificial reality and/or are otherwise used in (e.g.,perform activities in) an artificial reality. The artificial realitysystem that provides the artificial reality content may be implementedon various platforms, including a head-mounted display (HMD) connectedto a host computer system, a standalone HMD, a mobile device orcomputing system, or any other hardware platform capable of providingartificial reality content to one or more viewers.

While FIG. 1 shows single display device 101, single imaging device 160,and single input interface 170, in some other embodiments, any number ofthese components may be included in the system. For example, there maybe multiple display devices each having associated input interface 170and being monitored by one or more imaging devices 160, with eachdisplay device 101, input interface 170, and imaging device 160communicating with console 150. In alternative configurations, differentand/or additional components may also be included in the systemenvironment.

In some embodiments, display device 101 is a head-mounted display thatpresents media to a user of display device 101. Display device 101 isalso referred to herein as a head-mounted display device. Examples ofmedia presented by display device 101 include one or more of images,video, audio, haptics, or some combination thereof. In some embodiments,audio is presented via an external device (e.g., speakers and/orheadphones) that receives audio information from display device 101,console 150, or both, and presents audio data based on the audioinformation. In some embodiments, display device 101 immerses a user ina virtual environment.

In some embodiments, display device 101 also acts as an augmentedreality (AR) headset. In these embodiments, display device 101 augmentsviews of a physical, real-world environment with computer-generatedelements (e.g., images, video, sound, etc.). Moreover, in someembodiments, display device 101 is able to cycle between different typesof operation. Thus, display device 101 operates as a virtual reality(VR) device, an AR device, as glasses or some combination thereof (e.g.,glasses with no optical correction, glasses optically corrected for theuser, sunglasses, or some combination thereof) based on instructionsfrom application engine 156.

In some embodiments, display device 101 includes one or more of each ofthe following: display 102, processor 103, optics block 104, varifocalactuation block 106, focus prediction module 108, eye tracking module110, vergence processing module 112, locators 114, inertial measurementunit (IMU) 116, head tracking sensors 118, scene rendering module 120,and memory 122. In some embodiments, display device 101 includes only asubset of the modules described here. In some embodiments, displaydevice 101 has different modules than those described here. Similarly,the functions can be distributed among the modules in a different mannerthan is described here.

One or more processors 103 (e.g., processing units or cores) executeinstructions stored in memory 122. Memory 122 includes high-speed randomaccess memory, such as DRAM, SRAM, DDR RAM, or other random access solidstate memory devices; and may include non-volatile memory, such as oneor more magnetic disk storage devices, optical disk storage devices,flash memory devices, or other non-volatile solid state storage devices.Memory 122, or alternately the non-volatile memory device(s) withinmemory 122, includes a non-transitory computer readable storage medium.In some embodiments, memory 122 or the computer readable storage mediumof memory 122 stores programs, modules and data structures, and/orinstructions for displaying one or more images on display 102.

Display 102 displays images to the user in accordance with data receivedfrom console 150 and/or processor(s) 103. In various embodiments,display 102 comprises a single adjustable display element or multipleadjustable displays elements (e.g., a display for each eye of a user).

Optics block 104 directs light from display 102 to an exit pupil, forviewing by a user, using one or more optical elements, such as Fresnellenses, convex lenses, concave lenses, filters, and so forth, and mayinclude combinations of different optical elements. Optics block 104typically includes one or more lenses. In some embodiments, when display102 includes multiple adjustable display elements, optics block 104 mayinclude multiple optics blocks 104 (one for each adjustable displayelement).

Optics block 104 may be designed to correct one or more optical errors.Examples of optical errors include: barrel distortion, pincushiondistortion, longitudinal chromatic aberration, transverse chromaticaberration, spherical aberration, comatic aberration, field curvature,astigmatism, and so forth. In some embodiments, content provided todisplay 102 for display is pre-distorted, and optics block 104 correctsthe distortion when it receives image light from display 102 generatedbased on the content.

Varifocal actuation block 106 is configured to move display 102 and/orcomponents of optics block 104 to vary the focal plane of display device101. In doing so, varifocal actuation block 106 keeps a user's eyes in azone of comfort as vergence and accommodation change. In someembodiments, varifocal actuation block 106 physically changes thedistance between display 102 and optics block 104 by moving display 102or optics block 104 (or both), as will be explained further with respectto FIGS. 4C-4D. Additionally, moving or translating two lenses of opticsblock 104 relative to each other may also be used to change the focalplane of display device 101. Thus, varifocal actuation block 106 mayinclude actuators or motors (e.g., stepper motor 602, FIG. 6A) that areconfigured to move display 102 and/or optics block 104 to change thedistance between them. Varifocal actuation block 106 may be separatefrom or integrated into optics block 104 in various embodiments.

Each state of optics block 104 corresponds to a particular location of afocal plane of display device 101. In some embodiments, optics block 104moves in a range of 5˜10 mm with a positional accuracy of 5˜10 μm. Thiscan lead to 1000 states (e.g., positions) of optics block 104. Anynumber of states could be provided. In some embodiments, fewer statesare used. For example, in some cases, a first state corresponds to afocal plane located at infinity, a second state corresponds to a focalplane located at 2.0 meters (from a reference plane), a third statecorresponds to a focal plane located at 1.0 meter, a fourth statecorresponds to a focal plane located at 0.5 meter, a fifth statecorresponds to a focal plane located at 0.333 meter, and a sixth statecorresponds to a focal plane located at 0.250 meter. Varifocal actuationblock 106, thus, sets and changes the state of optics block 104 toachieve a desired location of a focal plane.

Optional focus prediction module 108 includes logic that tracks theposition or state of optics block 104 and/or display 102 to predict toone or more future states or locations of optics block 104 and/ordisplay 102. In some embodiments, focus prediction module 108accumulates historical information corresponding to previous states ofoptics block 104 and predicts a future state of optics block 104 basedon the previous states. Because rendering of a virtual scene by displaydevice 101 is adjusted, at least in some embodiments, based on the stateof optics block 104, the predicted state allows scene rendering module120 to determine an adjustment to apply to the virtual scene for aparticular frame.

Optional eye tracking module 110 tracks an eye position and/or eyemovement of a user of display device 101. In some embodiments, a cameraor other optical sensor (typically located inside display device 101)captures image information of a user's eyes, and eye tracking module 110uses the captured information to determine interpupillary distance,interocular distance, a three-dimensional (3D) position of each eyerelative to display device 101 (e.g., for distortion adjustmentpurposes), including a magnitude of torsion and rotation (i.e., roll,pitch, and yaw) and gaze directions for each eye. In one example,infrared light is emitted within display device 101 and reflected fromeach eye. The reflected light is received or detected by the camera (orsensor) and analyzed to extract eye rotation information from changes inthe infrared light reflected by each eye. Many methods for tracking theeyes of a user can be used by eye tracking module 110. Accordingly, eyetracking module 110 may track up to six degrees of freedom of each eye(e.g., three-dimensional position, roll, pitch, and yaw) and at least asubset of the tracked quantities may be combined from two eyes of a userto estimate a gaze point (e.g., a three-dimensional location or positionin the virtual scene where the user is looking).

Optional vergence processing module 112 determines a vergence depth of auser's gaze based on the gaze point or an intersection of gaze linesdetermined by eye tracking module 110. Vergence is the simultaneousmovement or rotation of both eyes in opposite directions to maintainsingle binocular vision, which is naturally and automatically performedby the human eye. Thus, a location where gaze directions of a user'seyes intersect each other is where the user is looking. The gazelocation is typically located on a focal plane of the user's eyes (e.g.,the plane where the user's eyes are, or should be, focused). In someembodiments, vergence processing module 112 triangulates gaze lines(that correspond to the gaze directions of the user's eyes) to determinea vergence distance or depth from the user. The depth associated withintersection of the gaze lines can then be used as an approximation forthe accommodation distance, which identifies a distance from the userwhere the user's eyes are (or should be) focused. Thus, the vergencedistance allows determination of a location where the user's eyes shouldbe focused (and a distance from the user's eyes to the determinedlocation), thereby providing information, such as a location of anobject or a focal plane, used for adjusting the virtual scene.

Optional locators 114 are objects located in specific positions ondisplay device 101 relative to one another and relative to a specificreference point on display device 101. Locator 114 may be a lightemitting diode (LED), a corner cube reflector, a reflective marker, atype of light source that contrasts with an environment in which displaydevice 101 operates, or some combination thereof. In some embodiments,locators 114 include active locators (e.g., an LED or other type oflight emitting device) configured to emit light in the visible band(e.g., about 400 nm to 750 nm), in the infrared (IR) band (e.g., about750 nm to 1 mm), in the ultraviolet band (e.g., about 100 nm to 400 nm),some other portion of the electromagnetic spectrum, or some combinationthereof.

In some embodiments, locators 114 are located beneath an outer surfaceof display device 101, which is transparent to the wavelengths of lightemitted or reflected by locators 114 or is thin enough to notsubstantially attenuate the wavelengths of light emitted or reflected bylocators 114. Additionally, in some embodiments, the outer surface orother portions of display device 101 are opaque in the visible band ofwavelengths of light. Thus, locators 114 may emit light in the IR bandunder an outer surface that is transparent in the IR band but opaque inthe visible band.

Optional inertial measurement unit (IMU) 116 is an electronic devicethat generates first calibration data based on measurement signalsreceived from one or more head tracking sensors 118. One or more headtracking sensors 118 generate one or more measurement signals inresponse to motion of display device 101. Examples of head trackingsensors 118 include accelerometers, gyroscopes, magnetometers, othersensors suitable for detecting motion, correcting error associated withIMU 116, or some combination thereof. Head tracking sensors 118 may belocated external to IMU 116, internal to IMU 116, or some combinationthereof.

Based on the measurement signals from head tracking sensors 118, IMU 116generates first calibration data indicating an estimated position ofdisplay device 101 relative to an initial position of display device101. For example, head tracking sensors 118 include multipleaccelerometers to measure translational motion (forward/back, up/down,left/right) and multiple gyroscopes to measure rotational motion (e.g.,pitch, yaw, and roll). IMU 116 can, for example, rapidly sample themeasurement signals and calculate the estimated position of displaydevice 101 from the sampled data. For example, IMU 116 integrates themeasurement signals received from the accelerometers over time toestimate a velocity vector and integrates the velocity vector over timeto determine an estimated position of a reference point on displaydevice 101. Alternatively, IMU 116 provides the sampled measurementsignals to console 150, which determines the first calibration data. Thereference point is a point that may be used to describe the position ofdisplay device 101. While the reference point may generally be definedas a point in space; however, in practice the reference point is definedas a point within display device 101 (e.g., a center of IMU 116).

In some embodiments, IMU 116 receives one or more calibration parametersfrom console 150. As further discussed below, the one or morecalibration parameters are used to maintain tracking of display device101. Based on a received calibration parameter, IMU 116 may adjust oneor more IMU parameters (e.g., sample rate). In some embodiments, certaincalibration parameters cause IMU 116 to update an initial position ofthe reference point so it corresponds to a next calibrated position ofthe reference point. Updating the initial position of the referencepoint as the next calibrated position of the reference point helpsreduce accumulated error associated with the determined estimatedposition. The accumulated error, also referred to as drift error, causesthe estimated position of the reference point to “drift” away from theactual position of the reference point over time.

Optional scene rendering module 120 receives content for the virtualscene from application engine 156 and provides the content for displayon display 102. Additionally, scene rendering module 120 can adjust thecontent based on information from focus prediction module 108, vergenceprocessing module 112, IMU 116, and/or head tracking sensors 118. Forexample, upon receiving the content from engine 156, scene renderingmodule 120 adjusts the content based on the predicted state (e.g., astate that corresponds to a particular eye position) of optics block 104received from focus prediction module 108 by adding a correction orpre-distortion into rendering of the virtual scene to compensate orcorrect for the distortion caused by the predicted state of optics block104. Scene render module 120 may also add depth of field blur based onthe user's gaze, vergence depth (or accommodation depth) received fromvergence processing module 112, or measured properties of the user's eye(e.g., three-dimensional position of the eye, etc.). Additionally, scenerendering module 120 determines a portion of the content to be displayedon display 102 based on one or more of tracking module 154, headtracking sensors 118, or IMU 116, as described further below.

Imaging device 160 generates second calibration data in accordance withcalibration parameters received from console 150. The second calibrationdata includes one or more images showing observed positions of locators114 that are detectable by imaging device 160. In some embodiments,imaging device 160 includes one or more cameras, one or more videocameras, other devices capable of capturing images including one or morelocators 114, or some combination thereof. Additionally, imaging device160 may include one or more filters (e.g., for increasing signal tonoise ratio). Imaging device 160 is configured to detect light emittedor reflected from locators 114 in a field of view of imaging device 160.In embodiments where locators 114 include passive elements (e.g., aretroreflector), imaging device 160 may include a light source thatilluminates some or all of locators 114, which retro-reflect the lighttowards the light source in imaging device 160. The second calibrationdata is communicated from imaging device 160 to console 150, and imagingdevice 160 receives one or more calibration parameters from console 150to adjust one or more imaging parameters (e.g., focal length, focus,frame rate, ISO, sensor temperature, shutter speed, aperture, etc.).

Input interface 170 is a device that allows a user to send actionrequests to console 150. An action request is a request to perform aparticular action. For example, an action request may be to start or endan application or to perform a particular action within the application.Input interface 170 may include one or more input devices. Example inputdevices include a keyboard, a mouse, a game controller, or any othersuitable device for receiving action requests and communicating thereceived action requests to console 150. An action request received byinput interface 170 is communicated to console 150, which performs anaction corresponding to the action request. In some embodiments, inputinterface 170 may provide haptic feedback to the user in accordance withinstructions received from console 150. For example, haptic feedback isprovided by input interface 170 when an action request is received, orconsole 150 communicates instructions to input interface 170 causinginput interface 170 to generate haptic feedback when console 150performs an action.

Console 150 provides media to display device 101 for presentation to theuser in accordance with information received from imaging device 160,display device 101, and/or input interface 170. In the example shown inFIG. 1, console 150 includes application store 152, tracking module 154,and engine 156. Some embodiments of console 150 have different oradditional modules than those described in conjunction with FIG. 1.Similarly, the functions further described below may be distributedamong components of console 150 in a different manner than is describedhere.

When application store 152 is included in console 150, application store152 stores one or more applications for execution by console 150. Anapplication is a group of instructions, that, when executed by aprocessor (e.g., processors 103), is used for generating content forpresentation to the user. Content generated by the processor based on anapplication may be in response to inputs received from the user viamovement of display device 101 or input interface 170. Examples ofapplications include gaming applications, conferencing applications,video playback application, or other suitable applications.

When tracking module 154 is included in console 150, the tracking module154 calibrates system 100 using one or more calibration parameters andmay adjust one or more calibration parameters to reduce error indetermination of the position of display device 101. For example,tracking module 154 adjusts the focus of imaging device 160 to obtain amore accurate position for observed locators 114 on display device 101.Moreover, calibration performed by tracking module 154 also accounts forinformation received from IMU 116. Additionally, if tracking of displaydevice 101 is lost (e.g., imaging device 160 loses line of sight of atleast a threshold number of locators 114), tracking module 154re-calibrates some or all of the system components.

In some embodiments, tracking module 154 tracks the movement of displaydevice 101 using calibration data from imaging device 160. For example,tracking module 154 determines positions of a reference point on displaydevice 101 using observed locators from the calibration data fromimaging device 160 and a model of display device 101. In someembodiments, tracking module 154 also determines positions of thereference point on display device 101 using position information fromthe calibration data from IMU 116 on display device 101. Additionally,in some embodiments, tracking module 154 use portions of the firstcalibration data, the second calibration data, or some combinationthereof, to predict a future location of display device 101. Trackingmodule 154 provides the estimated or predicted future position ofdisplay device 101 to application engine 156.

Application engine 156 executes applications within system 100 andreceives position information, acceleration information, velocityinformation, predicted future positions, or some combination thereof fordisplay device 101 from tracking module 154. Based on the receivedinformation, application engine 156 determines content to provide todisplay device 101 for presentation to the user, such as a virtualscene. For example, if the received information indicates that the userhas looked to the left, application engine 156 generates content fordisplay device 101 that mirrors or tracks the user's movement in avirtual environment. Additionally, application engine 156 performs anaction within an application executing on console 150 in response to anaction request received from input interface 170 and provides feedbackto the user that the action was performed. The provided feedback may bevisual or audible feedback via display device 101 or haptic feedback viainput interface 170.

FIG. 2 illustrates head-mounted display device 101 in accordance withsome embodiments. In this example, display device 101 includes a frontrigid body and a band that goes around a user's head. The front rigidbody includes one or more display elements corresponding to display 102,IMU 116, head tracking sensors 118, and locators 114. In this example,head tracking sensors 118 are located within IMU 116. Note in someembodiments, where the display device 101 is used in AR and/or MRapplications, portions of the display device 101 may be at leastpartially transparent (e.g., an internal display, one or more sides ofthe display device 101, etc.).

In the example provided, locators 114 are located in fixed positions onthe front rigid body relative to one another and relative to referencepoint 200. In this example, reference point 200 is located at the centerof IMU 116. Each of locators 114 emits light that is detectable byimaging device 160. Locators 114, or portions of locators 114, arelocated on a front side, a top side, a bottom side, a right side, and aleft side of the front rigid body, as shown FIG. 2.

Focal Plane Adjustment Method

As discussed above, system 100 may dynamically vary the focal plane tobring images presented to a user wearing display device 101 into focus,which keeps the user's eyes in a zone of comfort as vergence andaccommodation change. Additionally, eye tracking in combination with thevariable focus of the varifocal system allows blurring to be introducedin images presented by display device 101.

Accordingly, a position, orientation, and/or a movement of displaydevice 101 is determined by a combination of locators 114, IMU 116, headtracking sensors 118, imaging device 160, and tracking module 154, asdescribed above in conjunction with FIG. 1. Portions of a virtual scenepresented by display device 101 are mapped to various positions andorientations of display device 101. Thus, a portion of the virtual scenecurrently viewed by a user is determined based on the position,orientation, and movement of display device 101. After determining theportion of the virtual scene being viewed by the user, the system 100may then determine a location or an object within the determined portionat which the user is looking to adjust focus for that location or objectaccordingly.

To determine the location or object within the determined portion of thevirtual scene at which the user is looking, display device 101 tracksthe position and/or location of the user's eyes. Thus, in someembodiments, display device 101 determines an eye position for each eyeof the user. For example, display device 101 tracks at least a subset ofthe three-dimensional position, roll, pitch, and yaw of each eye anduses these quantities/measurements to estimate a three-dimensional gazepoint of each eye. Further, information from past eye positions,information describing a position of the user's head, and informationdescribing a scene presented to the user may also be used to estimatethe three-dimensional gaze point of an eye in various embodiments.

FIG. 3 is a schematic diagram illustrating display device 101 thatincludes camera 302 for tracking the position of each eye 300. In thisexample, camera 302 captures images of the user's eyes and eye trackingmodule 110 determines, based on the captured images, a position and/orlocation of each eye 300 and gaze lines 304 corresponding to the gazepoint or location where the user is looking.

Vergence depth (dv) 308 of the gaze point for the user is determinedbased on an estimated intersection of gaze lines 304. In FIG. 3, gazelines 304 converge or intersect at a location where (real or virtual)object 306 is located. The convergence location is on a plane located ata distance corresponding to vergence depth 308 from eyes 300. Because(virtual) distances from the viewer to (virtual) objects within thevirtual scene are known to the system, in some embodiments, vergencedepth 308 can be filtered or verified to determine a more accuratevergence depth for the virtual scene. For example, vergence depth 308 isan approximation of the intersection of gaze lines 304, which arethemselves an approximation based on the position of a user's eyes 300.Gaze lines 304 do not always precisely intersect each other. Thus, insome embodiments, virtual distances within the virtual scene arecompared to the vergence depth for the portion of the virtual scene togenerate a filtered vergence depth. In some embodiments, locations, ongaze lines 304, that have the shortest distance to each other are usedto determine an estimated vergence depth.

Determining a more accurate vergence depth or gaze point enables thevirtual scene to determine a user's object or plane of focus moreaccurately, allowing scene rendering module 120 to add depth of fieldblur to objects in the virtual scene or otherwise modify to virtualscene to appear more realistic. Further, if virtual scene includesmultiple objects, vergence processing module 112 may compare theestimated vergence depth to distances associated with at least a subsetof the objects to determine accuracy of the estimated vergence depth. Insome embodiments, the device selects a particular vergence depth, of thevergence depths corresponding to the displayed objects, that is closestto the estimated vergence depth as a filtered vergence depth; however,other methods of identifying a filtered vergence depth (or an objectthat corresponds to the filtered vergence depth) may be used in variousembodiments.

In some embodiments, a state of optics block 104 is determined for aframe of the virtual scene based on states of optics block 140 duringpresentation of previous frames of the virtual scene. For example, focusprediction module 108 tracks the state of optics block 104 for variousframes of the virtual scene to predict a future state of optics block104 for subsequent frames of the virtual scene. The predicted state ofoptics block 104 (e.g., a predicted location of optics block 104) allowsthe scene rendering module 120 to determine an adjustment to apply to aframe of the virtual scene so that distortion caused by the predictedstate of optics block 104 corrects or cancels the applied adjustmentrather than distorting the frame. Thus, based on the state of opticsblock 104, a distortion correction may be determined for application toa frame of the virtual scene to correct optical error introduced by thestate of optics block 104.

Accordingly, the focal plane is adjusted for the presented frame of thevirtual scene by moving one of display 102 or optics block 104 (or both)to provide the filtered vergence depth. In some embodiments, console 150receives the necessary information from components and modules ofdisplay device 101, and determines where, how far, and how fast to movedisplay 102 and/or optics block 104. Alternatively or additionally, insome embodiments, one or more processors 103 of display device 101process the information gathered by components and modules of displaydevice 101, and determine where, how far, and how fast to move display102 and/or optics block 104.

FIGS. 4A-4D show examples of adjusting the focal plane by moving display102 and/or optics block 104 using varifocal actuation block 106 inaccordance with some embodiments. In FIGS. 4A-4D, varifocal actuationblock 106 includes an actuator (e.g., motor), track, and so forth thatwill be further described with respect to FIGS. 5A-10 that allowmovement of display 102, optics block 104, or both for dynamicallyadjusting a focal plane.

FIG. 4A shows an example of display device 101 providing focal planeadjustment for frame n of a scene. In this example, the scene includesobject 400, displayed on display 102, at which the gaze of user 402 isdirected (e.g., verged). A virtual image of object 400 is located at avirtual distance d_(i), behind display 102, from exit pupil 404. In theexample of FIG. 4A, display 102 is in position p_(i), which providesaccommodation for distance d_(i) to enable comfortable viewing of object400.

FIG. 4B shows display device 101 providing focal plane adjustment for asubsequent frame n+1 of the virtual scene. In this example, user 402 mayhave repositioned his/her eyes to look at object 406 or object 406quickly moved toward user 402 in the scene. As a result, the virtualimage of object 406 is located close to display 102. In response to thelocation of object 406 being close to the display 102, which is closerthan object 400 in FIG. 4A, eyes of user 402 rotate inward to verge onobject 406, causing vergence processing module 112 to determine a newvergence depth for frame n+1 and to provide the new vergence depth tovarifocal actuation block 106. Based on the new vergence depth,varifocal actuation block 106 moves display 102 from position p_(i) tonew position p_(f) to accommodate user 402 at the new vergence depthd_(f) for the closer object 406.

In some embodiments, each state of optics block 104 corresponds to acombination of a particular focal distance and a particular eyeposition. In some examples, optics block 104 is configured to provideaccommodation for a range of vergence depths. In some embodiments, eachstate of optics block 104 is associated with a specific position ofoptics block 104. Accordingly, vergence depths may be mapped topositions of optics block 104, and, in some cases, the mappinginformation can be stored in a table (e.g., a lookup table). Thus, insome embodiments, when a vergence depth is received from vergenceprocessing module 112, varifocal actuation block 106 moves optics block104 to a position corresponding to the received vergence depth based onthe lookup table.

In many instances, virtual reality systems aim to present users with avirtual environment that simulates a real world environment, causing theusers to get immersed in the environment presented by the virtualreality systems. To provide users with a realistic or captivatingvirtual environment, a virtual reality system implements multiplesystems and methods discussed herein to operate together at efficienciesthat are imperceptible to a user. For example, transition delays areparticularly costly to user experience with virtual reality systems. Ifa user is waiting for the virtual scene presented by a HMD to catch upto what the user's brain is already expecting, the quality of theimmersive experience is reduced.

In some embodiments, the frame of the virtual scene corresponding to theportion of the virtual scene being viewed by the user is displayed ondisplay 102 with a distortion correction to correct optical error causedby optics block 104 based on the determined state of optics block 104and a depth of field blur based on the vergence depth. Further,varifocal actuation block 106 has changed the focus of optics block 104to provide focus and accommodation to the location in the portion of thevirtual scene where the user's eyes are verged.

In some embodiments, display of a scene by display device 101 ismodified to mitigate distortion introduced by optical errors of opticsblock 104 included in display device 101 that directs image light fromdisplay element 102 presenting the scene to an eye of a user. Adistortion correction is applied to the scene that pre-distorts thescene, and distortion caused by optics block 140 compensates for thepre-distortion as light from the modified scene passes through opticsblock 104 (or the pre-distortion compensates for the distortion causedby optics block 140). Hence, the scene viewed by the user is notdistorted. Accordingly, distortion corrections account for differentlevels and types of distortion caused by different eye positionsrelative to optics block 104 or different focal distances of displaydevice 101. Accordingly, the distortion corresponding to differentpotential eye positions relative to optics block 104 and at potentialfocal distances for display device 101 is determined by measuring awavefront (i.e., propagation of points of the same phase) of light fromdisplay 102 after the light has passed through optics block 104.Different eye positions relative to optics block 104 and differentstates of optics block 104 cause different degrees of optical error inlight directed through optics block 104. This optical error distortslight from display 102 included in display device 101, which may impairpresentation of a virtual scene to a user. Accordingly, distortioncorrection maps are generated based on measurements of the wavefront fordifferent states of optics block 104 to correct for optical errorintroduced by the different states of optics block 104, which accountsfor different focal distances of display device 101.

FIGS. 4C-4D show adjusting the focal plane by moving display 102 (e.g.,away from user 402) while optics block 104 maintains its position.Alternatively, display device 101 adjusts the focal plane by movingdisplay 102 closer to user 402 while optics block 104 maintains itsposition. In some embodiments, display device 101 adjusts the focalplane by moving optics block 104 while display 102 maintains itsposition. Thus, although the focal plane can be adjusted by moving bothoptics block 104 and display 102 as shown in FIGS. 4A-4B, it is notnecessary to move both optics block 104 and display 102 for adjustingthe focal plane.

Varifocal Actuation

As described above, varifocal actuation block 106 enables dynamicadjustment of the focal plane of display device 101 to keep a user'seyes in a zone of comfort as vergence and accommodation change. In someembodiments, varifocal actuation block 106 physically changes thedistance between display 102 and optics block 104 by moving display 102or optics block 104 (or both). Moving or translating two lenses that arepart of optics block 104 relative to each other may also be used tochange a focal distance of optics block 104 of display device 101,which, in turn, changes the focal plane. As discussed in more detailbelow with reference to FIG. 7, in some embodiments, varifocal actuationblock 106 physically changes the distance between display 102 and opticsblock 104 after display device 101 receives information from applicationengine 156.

FIGS. 5A-5C show varifocal actuation block 106 that include a lead screwin accordance with some embodiments. Each view in FIGS. 5A-5C showsvarifocal actuation block 106 that corresponds to a single eye of auser. In some embodiments, display device 101 includes two such portions(e.g., display device 101 includes two displays 102, optical blocks 104,and varifocal actuation blocks 106). It is noted that in someembodiments, however, display device 101 includes a single display 102and a single varifocal actuation block 106 (or multiple varifocalactuation blocks 106 positioned at different positions on the singledisplay 102). Additionally, other configurations of components describedherein are possible.

FIG. 5A is a perspective view of a portion of display device 101 thatincludes display 102, optics block 104, and varifocal actuation block106. Varifocal actuation block 106, in some embodiments, includes motor502 (e.g., stepper motor) and drive mechanism 504 (e.g., lead screw,ball screw, geared spindle drive, etc.) configured to move display 102toward and away from optics block 104 along optical axis 550 (or z-axis)along one or more guides 506. In some embodiments, when electronicdisplay 102 moves along the optical axis, the electronic display 102 mayalso move in a direction that is perpendicular to the optical axis. Insome embodiments, when electronic display 102 moves along the opticalaxis, the electronic display 102 does not move in a direction that isperpendicular to the optical axis.

In some embodiments, drive mechanism 504 is positioned relative tooptics block 104 (e.g., mounted directly to optics block 104). In someembodiments, drive mechanism 504 is positioned relative to a housing ofdisplay device 101, or a bracket of display device 101, etc. In FIG. 5A,display device 101 also includes position sensor 508 to determine aposition of optics block 104 (e.g., an absolute position or a positionrelative to display 102). In some embodiments, display device 101,additionally or alternatively, includes a position sensor to determine aposition of display 102 (e.g., an absolute position or a positionrelative to optics block 104).

FIG. 5B is a plan view of the portion of display device 101 shown inFIG. 5A. In FIG. 5B, drive mechanism 504 is coupled with display 102.FIG. 5B additionally shows optional camera 503 and optional hot mirror552, in accordance with some embodiments of display device 101. Asdescribed above, the position of display 102, at least in someembodiments, is selected based on (or adjusted in response to) the focalplane corresponding to a vergence depth determined from the vergenceangle of the user's eyes. In some embodiments, the vergence angle isdetermined from real-time eye tracking. The position of an eye may becaptured by camera 302, which is located off-axis (e.g., at an anglerelative to optical axis 550). In some embodiments, camera 302 is aninfrared (IR) camera that receives IR light reflected from the eye ofthe user via hot mirror 552 located between display 102 and optics block104. Hot mirror 552 is positioned at an angle relative to display 102 inorder to reflect the IR light off-axis toward camera 302. Here, hotmirror 552 is transparent to visible light to allow the visible lightfrom display 102 to pass through to a viewing user unimpeded whilereflecting the IR light to camera 302. Thus, camera 302 captures IRlight reflected from a retina of the user (and hot mirror 552) and thisinformation for the position of the user's eye is provided to determinethe vergence depth.

Accordingly, the focal plane of display device 101 may be adjusted tomatch the determined vergence depth. Drive mechanism 504, insubstantially real-time, moves display 102 relative to optics block 104to adjust the focal plane of display device 101 to the determinedvergence depth utilizing screen positioning feedback via a positionsensor 508 (e.g., a linear or proximity encoder). A positional precisionof ˜100 microns or better is achievable with commercially availablelinear encoding systems.

FIG. 5C shows an exploded view of a portion of display device 101described with respect to FIGS. 5A-5B. In FIG. 5C, components of display102, optics block 104, and varifocal actuation block 106 are shownseparately with indications corresponding to how display 102, opticsblock 104, and varifocal actuation block 106 fit together. In FIG. 5C,drive mechanism 504 of varifocal actuation block 106 includes lead screw510 (also referred to herein as a rotational component) driven by motor502 and nut-sled 512. Lead screw 510 and motor 502 (e.g., stepper motor)are supported by bracket 520, which can be fixed to a housing of displaydevice 101 or to optics block 104. Although shown outside of bracket520, motor 502 could be located parallel to lead screw 510 inside ofbracket 520 and engage lead screw 510 through gears (e.g., a first gearfor motor 502 and a second gear for lead screw 510). The gears can belocated outside, or inside, of bracket 520. Nut-sled 512 includes pushpin 514, and is threaded to move along lead screw 510 when lead screw510 is turned and moves back and forth depending on which direction leadscrew 510 is turned. Additionally, in some embodiments, drive mechanism504 includes a preload spring (e.g., positioned around, in parallel to,lead screw 510) configured to reduce backlash of drive mechanism 504. Insome embodiments, drive mechanism 504 may also use different screw typesincluding a nut-sled interaction and screw end support methodologies.

In some embodiments, optics block 104 is fixed within display device101, and display 102 is moved relative to optics block 104 based on thedetermined vergence depth. Here, display 102 is mounted to displaybracket 516 that optionally includes display bracket arm 518 and guidepins 520 a, 520 b. Accordingly, display bracket arm 518 receives orengages push pin 514 of drive mechanism 504 and guide pins 520 a, 520 bslide freely within guides 506. Thus, as nut-sled 512 moves along leadscrew 510, push pin 514 engages display bracket arm 518 and movesdisplay bracket 516, which supports display 102, and guide pins 520 aand 520 b guide the movement of display 102 relative to optics block 104by engaging guides 506 (e.g., 506 a and 506 b) of optics block 104.

FIGS. 6A-6B show varifocal actuation block 106 in accordance with someembodiments. Each view of FIGS. 6A-6B includes optics block 104 andvarifocal actuation block 106 for a single eye of a user. In practice,display device 101 would include two such portions (e.g., display device101 would include two displays 102, two optical blocks 104, and twovarifocal actuation blocks 106). It is noted that in some embodiments,however, display device 101 may include a single display 102 and one ormore varifocal actuation blocks 106.

FIG. 6A is a perspective view of varifocal actuation block 106 inaccordance with some embodiments. Varifocal actuation block 106, in someembodiments, includes stepper motor 602 and drive mechanism 604 (e.g.,lead screw, ball screw, geared spindle drive, etc.). In FIG. 6A, drivemechanism 604 is coupled to an electronic display so that the displaycan move relative to an optics block. Alternatively or in addition,drive mechanism 604 can be coupled to the optics block so that theoptics block can move relative to the display. Stepper motor 602 anddrive mechanism 604 are used to move display 102 (shown in FIG. 6B)toward and away from optics block 104 (e.g., lens 605) along an opticalaxis (e.g., optical axis 550, FIG. 5A) via one or more guides 606.

FIG. 6B is a partial cross-sectional view of varifocal actuation block106 shown in FIG. 6A. FIG. 6B shows display 102 (e.g., a light-emittingdiode display, an organic light-emitting diode display, etc.) coupled tovarifocal actuation block 106. As described above, the position ofdisplay 102, at least in some embodiments, is driven by (or adjusted inresponse to) the focal plane corresponding to a vergence depthdetermined from the vergence angle of the user's eyes, which is obtainedfrom real-time eye tracking. The position of an eye may be captured bycamera 302 (as described above with reference to FIGS. 5A-5C).Accordingly, stepper motor 602 may move display 102 toward and away fromoptics block 104 (e.g., lens 605) along the optical axis based on thereal-time eye tracking.

FIG. 6B also illustrates guide 606, which is configured to guidemovement of display 102 relative to optics block 104. For example, guide606 constricts the movement of display 102 to a particular axis (e.g.,guide 606 constricts the movement of display 102 to an optical axis ofoptics block 104 so that display 102 can move toward or away from opticsblock 104, but cannot move in a direction perpendicular to the opticalaxis of optics block 104). Although not shown, display device 101 mayinclude multiple guides 606. Typically, multiple guides 606 arepositioned parallel to one another.

FIG. 7 shows block diagram 700 illustrating a control system for astepper motor in accordance with some embodiments. Block diagram 700includes application engine 156 (e.g., application engine 156 of console150, FIG. 1), controller 704 (e.g., one or more processors 103, FIG. 1or a dedicated stepper motor controller circuit), driver 706 (e.g., partof or associated with varifocal actuation block 106), and stepper motor708 (e.g., stepper motor 602, FIG. 6A). Stepper motor 708 may be varioustypes of stepper motors. In some embodiments, stepper motor 708 is aunipolar stepper motor or a bipolar stepper motor. In some embodiments,stepper motor 708 is a bipolar stepper motor with series windings, abipolar stepper motor with parallel windings, a bipolar stepper motorwith a single winding per phase. Examples of stepper motor 708 includebut are not limited to: a 6-lead unipolar stepper motor, a 4-leadbipolar stepper motor, a 6-lead bipolar serial connection stepper motor,a 6-lead bipolar parallel connection stepper motor, an 8-lead bipolarserial connection stepper motor, and an 8-lead bipolar parallelconnection stepper motor. In some embodiments, controller 704 is aproportional-integral-derivative (PID) controller, or the like.

Controller 704 is configured to move (or cause movement of) display 102from a current (actual) positon (e.g., position p_(i), FIG. 4A) to a new(reference) position (e.g., position pf, FIG. 4B). In some embodiments,controller 704 determines the actual position of display 102 based on acurrent rotational position of a rotatable component (e.g., drivemechanism 604, FIG. 6A) of stepper motor 708. For example, controller704 may determine that the rotatable component has rotated x-number oftimes from a baseline rotational position. Based on the amount ofrotation, controller 704 can determine the actual position of display102. In another example (separate from or in combination with theprevious example), display device 101 tracks (e.g., in memory 122,FIG. 1) a current rotational position of the rotatable component, anddetermines (or estimates) the actual position of display 102 based onthe current rotational position. In some embodiments, controller 704includes memory for storing information indicating the baselinerotational position of the rotatable component and/or informationindicating the current rotational position of the rotatable component.In some embodiments, controller 704 is also configured to move (or causemovement of) optics block 104 from a current positon to a new position(in addition to or separate from causing moving of display 102).

In some embodiments, controller 704 receives information indicating arepresentative position of display 102 and/or optical block 104 from oneor more position sensors (e.g., encoder 508, FIG. 5A), and determinesthe actual position of display 102 (and/or optics block 104) based oninformation from the one or more position sensors (e.g., encoder 508,FIG. 5A). As explained above with reference to FIGS. 5A-5B, displaydevice 101 includes encoder 508 configured to determine a position ofdisplay 102 (e.g., provide positioning feedback). In some embodiments,one or more position sensors continuously send the position of display102 to controller 704. Alternatively, one or more position sensors maysend the position of display 102 to controller 704 at predefinedintervals or in response to a request from controller 704.

In some embodiments, controller 704 receives the new (reference)position of display 102 (e.g., position pf) from application engine 156.Controller 704 is configured to determine a difference, if any, betweenthe actual position of display 102 and the reference position inresponse to receiving the reference position of display 102. Controller704 is configured to generate one or more electrical signals that causestepper motor 708 to move display 102 (and/or optics block 104) from thecurrent position toward the reference position (e.g., if there is adifference between the actual position of display 102 and the referenceposition). In some embodiments, the one or more electrical signalsinclude information indicating the determined difference between theactual position of display 102 and the reference position, along withother information. In some embodiments, the one or more electricalsignals include information that is based on the determined differencebetween the actual position of display 102 and the reference position,but does not directly indicate the determined difference between theactual position of display 102 and the reference position. For example,the one or more electrical signals may indicate a degree of rotation(e.g., a number of rotations or a fraction thereof for the rotatablecomponent of stepper motor 708). Moreover, the one or more electricalsignals may indicate a speed of rotation, an acceleration of rotation,and a direction of rotation.

In some embodiments, driver 706 receives and processes the one or moreelectrical signals generated by controller 704, and driver 706 controlsactuation of stepper motor 708 based on the one or more electricalsignals. For example, driver 706 may generate a pattern of electricaldriver signals according to the one or more electrical signals generatedby controller 704. In some embodiments, the one or more electricalsignals generated by controller 704 indicate the speed of rotation, theacceleration of rotation, the direction of rotation, and/or the degreeof rotation, and the pattern of electrical driver signals corresponds tothe speed of rotation, the acceleration of rotation, the direction ofrotation, and/or the degree of rotation indicated by the one or moreelectrical signals. Moreover, the pattern of electrical driver signals,when received by stepper motor 708, causes rotation of the rotatablecomponent of stepper motor 708 pursuant to the speed of rotation, theacceleration of rotation, the direction of rotation, and/or the degreeof rotation. In doing so, display 102 (and/or optics block 104) is movedfrom its current position to the new position (i.e., the referenceposition).

In some embodiments, the one or more electrical signals generated bycontroller 704 are provided to driver 706 in a first number of channels(e.g., a single-bit channel, an 8-bit channel, etc.) and driver 706outputs the pattern of electrical driver signals in a second number ofchannels (e.g., 2, 4, 6, or 8 channels) that is distinct from the firstnumber of channels.

In some embodiments, the pattern of electrical signals is a predefinedpattern of electrical signals. In some embodiments, the pattern ofelectrical driver signals is included in a lookup table (e.g., lookuptable 900 or lookup table 910), and driver 706 references the lookuptable when receiving and processing the one or more electrical signalsgenerated by controller 704. In some embodiments, the lookup table canbe stored in memory 122 (FIG. 1).

In some instances, a magnitude of current associated with the electricaldriver signals delivered to stepper motor 708 exceeds (or would exceed)a threshold. Current with a magnitude (e.g., amperage) exceeding thethreshold may cause stepper motor 708 to stall.

Accordingly, in such instances, driver 706 reduces the magnitude of thecurrent in response to determining that a measured magnitude of thecurrent satisfies (e.g., exceeds) the threshold. To reduce themagnitude, driver 706 can decrease an amplitude, skip a cycle, and/oradjust a duty cycle of the pattern of electrical driver signals.Reducing a magnitude of the current delivered to stepper motor 708 isdiscussed in further detail below with reference to FIG. 10.

Application engine 156 provides the reference position to controller704. In some embodiments, application engine 156 provides the referenceposition in response to receiving information from one or morecomponents of display device 101 indicating that display device 101requires a focal plane adjustment (e.g., a user of display device 101refocused his or her eyes). The one or more components may include focusprediction module 108, eye tracking module 110, vergence processingmodule 112, locators 114, IMU 116, and/or head tracking sensors 118. Forexample, application engine 156 may receive eye tracking andthree-dimensional gaze point information from display device 101, andbased on this information, application engine 156 determines thereference position. In another example (in addition to or separate fromthe previous example), application engine 156 may receive position,orientation, and/or movement information from display device 101, andbased on this information, application engine 156 determines thereference position. Focal plane adjustments are discussed in detailabove with reference to FIGS. 1-3.

FIGS. 8A-8B are flow diagrams illustrating method 800 of adjustingpositions of display 102 in accordance with some embodiments. Operations(e.g., steps) of method 800 may be performed by a head-mounted displaydevice (e.g., display device 101) or by one or more components thereof(e.g., one or more components of display device 101 shown in FIG. 1). Atleast some of the operations shown in FIGS. 8A-8B correspond toinstructions stored in a computer memory or computer-readable storagemedium (e.g., memory 122 of display device, FIG. 1).

In some embodiments, one or more operations of method 800 are performedby an electronic controller (e.g., controller 704, FIG. 7) of thehead-mounted display device (802). In some embodiments, controller 704is part of or an example of one or more processors 103. In someembodiments, controller 704 is distinct and separate from one or moreprocessors 103. The head-mounted display device may further include afirst stepper motor (e.g., stepper motor 602, FIG. 6A), a first display(e.g., display 102, FIG. 1), and a first set of one or more lenses(e.g., lens 605, FIG. 6A). In some embodiments, the first stepper motoris mechanically coupled to the first display (e.g., directly orindirectly, rigidly or slidingly via a rotatable component of the firststepper motor). For example, the first stepper motor is rigidly coupledto the first display or one or more mechanical components holding thefirst display (e.g., a frame) and slidingly coupled to the optics blockor a housing thereof via a combination of a lead screw and a nut (orother appropriate fastener) rigidly coupled to the optics block or thehousing thereof. In another example, the first stepper motor is rigidlycoupled to the optics block or the housing thereof and slidingly coupledto the first display or one or more mechanical components holding thefirst display via a combination of a lead screw and a nut (or otherappropriate fastener) rigidly coupled to the first display or one ormore mechanical components holding the first display. The first set ofone or more lenses is configured to focus light from the first displayalong a first axis (e.g., optical axis 550, FIG. 5A). In someembodiments, the first stepper motor is mechanically coupled to thefirst set of one or more lenses.

Method 800 includes determining (804) a first position of the firstdisplay and/or the first set of one or more lenses. In some instances,the first display and/or the first set of one or more lenses ispositioned at the first position to bring one or more images presentedto a user wearing the head-mounted display device 101 into focus, whichkeeps the user's eyes in a zone of comfort as vergence and accommodationchange. To provide context, operation 804 can correspond to thesituations shown in FIGS. 4A and 4C.

In some embodiments, determining (804) the first position of the firstdisplay and/or the first set of one or more lenses is based on a currentrotational position of a rotatable component (e.g., rotational component604, FIG. 6A) of the first stepper motor (806). For example, theelectronic controller may determine that the rotatable component hasrotated x-number of times (or a certain angle) from a baselinerotational position. In some embodiments, the baseline rotationalposition is a factory calibrated/set baseline (e.g., a home position),whereas in some other embodiments, the baseline rotational position is acurrent rotational position of the rotatable component (e.g., baselineis updated after each adjustment of display 102). Thus, based on thenumber of rotations, the electronic controller is able to determine thefirst position of display. In some embodiments, the current rotationalposition of the rotatable component can be stored in memory 122 (FIG. 1)of the head-mounted display device.

In some embodiments (separate from or in addition to other embodimentsdescribed herein), the head-mounted display device includes a positionsensor (e.g., encoder 508, FIG. 5A) in communication with the firstelectronic controller. The position sensor is configured to determine aposition of the first display and/or the first set of one or morelenses. Accordingly, in some embodiments, method 800 further includesreceiving (808), from the position sensor, the position of the firstdisplay and/or the first set of one or more lenses, and determining(804) the first position of the first display and/or the first set ofone or more lenses based on the position of the first display and/or thefirst set of one or more lenses received from the position sensor.

In some embodiments, the device determines the first position of thefirst display and/or the first set of one or more lenses solely based onthe rotational position of the first stepper motor. This allows anopen-loop control of the position of the first display and/or the firstset of one or more lenses. Thus, in such embodiments, the device doesnot (or need not) include one or more position sensors to determine thefirst position of the first display and/or the first set of one or morelenses.

In some embodiments, the first position of the first display and/or thefirst set of one or more lenses corresponds to a certain distance from apredetermined position. For example, the electronic controller maydetermine that the first position of the first display and/or the firstset of one or more lenses is x-units away from the predeterminedposition using operation 806, operation 808, or some combinationthereof. The predetermined position may be a home position, which iswhere the first display and/or the first set of one or more lenses ismoved to when the head-mounted display device is in a particular state(e.g., powered off, idle, etc.). Alternatively, the predeterminedposition may be a baseline (e.g., the factory calibrated baseline or thebaseline that is updated after each adjustment).

Method 800 further includes receiving (810) information identifying asecond position (e.g., position p_(f), FIG. 4B) of the first displayand/or the first set of one or more lenses. In some embodiments, thefirst position of the first display and/or the first set of one or morelenses is selected for first visual data to be displayed by the firstdisplay and/or the first set of one or more lenses and the secondposition is selected for second visual data to be displayed by the firstdisplay. For example, the first visual data corresponding to the firstposition may depict a first scene (e.g., a distant peak in a mountainrange), whereas the second visual data corresponding to the secondposition may depict a second scene different from the first scene (e.g.,user moves head, and in turn the head-mounted display device, to focuson an object in his or her hands).

In some embodiments, the information identifying the second position isreceived from a host (e.g., console 150, or more specifically,application engine 156 of console 150, FIG. 1) of the head-mounteddisplay device. In some embodiments, the host determines the secondposition using information generated by the head-mounted display device.For example, information from focus prediction module 108, eye trackingmodule 110, vergence processing module 112, locators 114, IMU 116,and/or head tracking sensors 118 can be used by the host to create theinformation identifying the second position. Determining the secondposition (e.g., the reference position) is discussed in further detailabove with reference to FIG. 7.

In some embodiments, method 800 further includes determining (812)whether a difference between the first and second positions satisfies athreshold. For example, if a difference between the first and secondpositions is too trivial or minor to warrant moving the first display,then the electronic controller may forgo taking the actions necessary tomove the first display. Accordingly, in response to determining that thedifference between the first and second positions does not satisfy thethreshold (812—No), method 800 further includes not causing (814) thefirst stepper motor to move the first display and/or the first set ofone or more lenses (e.g., maintaining the first display and the firstset of one or more lenses at their current positions).

However, in response to determining that the difference between thefirst and second positions satisfies the threshold (812—Yes) (e.g.,“Error” in FIG. 7 is greater than the threshold), method 800 furtherincludes generating (816) one or more first electrical signals (and insome cases, one or more second electrical signals) that cause the firststepper motor to move the first display and/or the first set of one ormore lenses from the first position to the second position. In doing so,the display device changes the focal plane in presenting images to theuser wearing the head-mounted display device.

In some embodiments, method 800 further includes generating (818) theone or more second electrical signals (e.g., based on the one or morefirst electrical signals) in response to determining that the one ormore first electrical signals satisfy a stall threshold, includinglimiting the one or more second electrical signals and/or limiting arate of change of the one or more second electrical signals. In somecases, the stall threshold corresponds to values of torque and/orrotational speed of the stepper motor that, when exceeded, cause thestepper motor to stall. Accordingly, in accordance with a determinationthat the one or more first electrical signals would cause the steppermotor to stall, the electronic controller generates the one or moresecond electrical signals (with reduced signal amplitudes and/or areduced rate of change for the signal amplitudes) to prevent saidstalling.

It is noted that clockwise rotation of the rotatable component moves thefirst display and/or the first set of one or more lenses in a firstdirection along the first axis and counterclockwise rotation of therotatable component moves the first display and/or the first set of oneor more lenses in a second direction opposite to the first directionalong the first axis.

In some embodiments, the head-mounted display device includes a driver(e.g., driver 706, FIG. 7). The driver may be in communication with thefirst electronic controller and the first stepper motor (e.g., driver706 is positioned between and electrically coupled to controller 704 andstepper motor 708, FIG. 7). In some embodiments, method 800 furthercomprises sending (820) the one or more first electrical signals (or theone or more second electrical signals when the one or more secondelectrical signals are available) to the driver. The driver isconfigured to receive the one or more electrical signals from theelectronic controller, and generate and provide a predefined pattern ofdriver signals to the first stepper motor according to the one or moreelectrical signals. The predefined pattern of driver signals causes thefirst stepper motor to rotate the rotatable component.

For example, with reference to FIGS. 4A-4B, the predefined pattern ofdriver signals causes the first stepper motor to move display 102 fromposition pito position pf. Moreover, a speed and acceleration at whichthe first stepper motor moves display 102 from position pito position pfmay be defined by the predefined pattern of driver signals.Additionally, a direction of rotation may also be defined by thepredefined pattern of driver signals (e.g., clockwise versuscounterclockwise rotation of the rotatable shaft).

In some embodiments, the first set of one or more lenses remainsstationary (e.g., relative to the frame of the display device) duringand after the moving of the first display. Alternatively, in someembodiments, the first set of one or more lenses is also moved (e.g., asshown in FIGS. 4A-4B). In some embodiments, the first display remainsstationary during and after moving the first set of one or more lenses.

In some embodiments, the driver controls generation of the predefinedpattern of driver signals using a lookup table (e.g., lookup tables 900and 910, FIGS. 9A and 9B). In some embodiments, the lookup tableincludes a first lookup table for a first configuration of the firststepper motor. For example, when the first stepper motor is operated ina 6-lead unipolar control configuration, lookup table 900 shown in FIG.9A may be used. In some embodiments, the lookup table includes a secondlookup table, different from the first lookup table, for a secondconfiguration, different from the first configuration, of the firststepper motor. For example, when the first stepper motor is operated ina microstep control configuration, lookup table 910 shown in FIG. 9B maybe used. These two lookup tables 900 and 910 are mere examples, andvarious other lookup tables can be used, as known by those skilled inthe art.

In some embodiments, method 800 further includes determining (822) athird position of the first display and/or the first set of one or morelenses after the first stepper motor attempts to move the first displayand/or the first set of one or more lenses from the first position tothe second position. The third position may be the same as or differentfrom the second position. Next, method 800 may further includedetermining (824) whether the third position is within a predefineddistance from the second position. In some embodiments, the predefineddistance is less than approximately 2 mm. In some embodiments, thepredefined distance is less than approximately 1 mm. In someembodiments, the predefined distance is less than approximately 0.9 mm.In some embodiments, the predefined distance is less than approximately0.8 mm. In some embodiments, the predefined distance is less thanapproximately 0.7 mm. In some embodiments, the predefined distance isless than approximately 0.6 mm. In some embodiments, the predefineddistance is less than approximately 0.5 mm. The third position may bedetermined based on a current rotational position of the rotatablecomponent and/or information gathered by the one or more positionsensors (described in further detail with reference to operations 806and 808).

In response to determining that the third position is within thepredefined distance from the second position (824—Yes), method 800 doesnot cause the first stepper motor to move the first display and/or thefirst set of one or more lenses again (826). For example, the electroniccontroller successfully has moved the first display from the firstposition to the second position. However, in response to determiningthat the third position is not within the predefined distance from thesecond position (824—No), method 800 further includes generating (828)one or more additional electrical signals that cause the first steppermotor to move the first display and/or the first set of one or morelenses from the third position to the second position along the firstaxis.

The purpose of operations 822 through 828 is to determine whether thestepper motor has successfully moved the first display and/or the firstset of one or more lenses to the second position. In some instances, thefirst stepper motor may improperly move the first display and/or thefirst set of one or more lenses for one reason or another (e.g., thefirst stepper motor stalls, or some other fault or glitch occurs). Basedon the operations 822 through 828, the head-mounted display deviceoperates a feedback loop, thereby allowing the head-mounted displaydevice to reduce for position errors (e.g., errors caused by the firststepper motor).

In some embodiments, operations 822 through 828 are repeated until thedisplay device determines that the first display is within thepredefined distance from the second position.

In some embodiments, the head-mounted display device includes a secondelectronic controller, a second stepper motor (e.g., an instance ofstepper motor 602, FIG. 6A), a second display (e.g., an instance ofdisplay 102, FIG. 1), and a second set of one or more lenses (e.g., aninstance of lens 605, FIG. 6A). The second stepper motor is mechanicallycoupled to the second display and/or the second set of one or morelenses (e.g., directly or indirectly, rigidly or rotatably via arotatable component of the second stepper motor). Accordingly, thesecond electronic controller can also perform the operations of method800 independently from the first electronic controller (e.g., the firstand second displays can move independently from each other). In someembodiments, the second electronic controller performs the operations ofmethod 800 in conjunction with the first electronic controller. In thisway, the head-mounted display device includes two displays that can bemoved together. In some embodiments, a single electronic controllercontrols movement of both first and second displays.

FIGS. 9A-9B illustrate example lookup tables that are used forcontrolling operations of a stepper motor in accordance with someembodiments. As discussed above, the driver may control generation ofthe predefined pattern of driver signals using a lookup table. Forexample, when stepper motor 708 is operated by a control configurationof a first type (e.g., 6-lead unipolar stepper motor controlconfiguration), then a predefined pattern of driver signals may begenerated by driver 706 (FIG. 7) based on lookup table 900. In anotherexample, when stepper motor 708 is operated by a control configurationof a second type (e.g., microstep control configuration), then thepredefined pattern of driver signals may be generated by driver 706based on lookup table 910. In some embodiments, driver 706 is able toincrease or decrease a rotational speed (e.g., rotations per minute) ofstepper motor's 708 rotatable component by varying a time intervalbetween each step. Various other lookup tables can be used, depending onthe stepper motor type, and the two examples provided are not meant tobe limiting.

FIG. 10 shows a graph illustrating an operation of an example filter inaccordance with some embodiments. The example filter may be used tolimit (i.e., reduce) an amount of current delivered to stepper motor708. Limiting the amount of current, at least in some instances,prevents stepper motor 708 from stalling. Chart 1000 includes measuredcurrent on its x-axis and output current on its y-axis. Chart 1000includes current distribution 1001 and current thresholds 1002-A and1002-B. As shown in FIG. 10, when measured current M_(x) satisfies(e.g., exceeds) current threshold 1002-A, display device 101 (or acomponent thereof such as driver 706, FIG. 7) reduces a magnitude ofcurrent (to current threshold 1002-A or a fraction thereof) in responseto determining that the measured current satisfies current threshold1002-A. For example, display device 101 reduces the magnitude of themeasured current to magnitude M_(y) 1006, which corresponds to afraction of the current threshold (e.g., 90% or 80% of the currentthreshold). The current of the reduced magnitude is output from thefilter. This prevents or reduces stalling of stepper motor 708 caused byan excessive current.

Although some of various drawings illustrate a number of logical stagesin a particular order, stages which are not order dependent may bereordered and other stages may be combined or broken out. While somereordering or other groupings are specifically mentioned, others will beobvious to those of ordinary skill in the art, so the ordering andgroupings presented herein are not an exhaustive list of alternatives.Moreover, it should be recognized that the stages could be implementedin hardware, firmware, software or any combination thereof.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the scope of the claims to the precise forms disclosed. Manymodifications and variations are possible in view of the aboveteachings. The embodiments were chosen in order to best explain theprinciples underlying the claims and their practical applications, tothereby enable others skilled in the art to best use the embodimentswith various modifications as are suited to the particular usescontemplated.

What is claimed is:
 1. A head-mounted display device, comprising: afirst set of one or more lenses; a first display configured to providevisual data through the first set of one or more lenses; a first steppermotor mechanically coupled to the first display and/or the first set ofone or more lenses, the first stepper motor being configured to move thefirst display and/or the first set of one or more lenses along a firstaxis by rotating a rotatable component of the first stepper motor; afirst electronic controller configured to: determine a first position ofthe first display and/or the first set of one or more lenses; receiveinformation identifying a second position of the first display and/orthe first set of one or more lenses; and generate one or more electricalsignals that cause the first stepper motor to move the first displayand/or the first set of one or more lenses from the first position tothe second position along the first axis; a second set of one or morelenses; a second display configured to provide visual data through thesecond set of one or more lenses; a second stepper motor mechanicallycoupled to the second display and/or the second set of one or morelenses, the second stepper motor being configured to move the seconddisplay and/or the second set of one or more lenses along a second axisby rotating a rotatable component of the second stepper motor; and asecond electronic controller configured to: determine a first positionof the second display and/or the second set of one or more lenses;receive information identifying a second position of the second displayand/or the second set of one or more lenses; and generate one or moreelectrical signals that cause the second stepper motor to move thesecond display and/or the second set of one or more lenses from thefirst position of the second display and/or the second set of one ormore lenses to the second position of the second display and/or thesecond set of one or more lenses along the second axis.
 2. Thehead-mounted display device of claim 1, further comprising a driver incommunication with the first electronic controller and the first steppermotor, the driver being configured to: receive the one or moreelectrical signals generated by the first electronic controller; andgenerate a predefined pattern of driver signals to the first steppermotor according to the one or more electrical signals, wherein thepredefined pattern of driver signals causes the first stepper motor torotate the rotatable component.
 3. The head-mounted display device ofclaim 2, wherein the driver is further configured to control generationof the predefined pattern of driver signals using a lookup table.
 4. Thehead-mounted display device of claim 3, wherein: the lookup tableincludes a first lookup table for a first configuration of the firststepper motor; and the lookup table includes a second lookup table,different from the first lookup table, for a second configuration,different from the first configuration, of the first stepper motor. 5.The head-mounted display device of claim 2, wherein the driver isfurther configured to: measure a magnitude of current associated withthe driver signals delivered to the first stepper motor; and reduce themagnitude of the current in response to determining that the measuredmagnitude satisfies a threshold.
 6. The head-mounted display device ofclaim 1, wherein: the one or more electrical signals are one or morefirst electrical signals; and the first electronic controller isconfigured to generate one or more second electrical signals in responseto determining that the one or more first electrical signals satisfy athreshold, including limiting the one or more second electrical signalsand/or limiting a rate of change of the one or more second electricalsignals.
 7. The head-mounted display device of claim 1, wherein thefirst electronic controller is configured to generate the one or moreelectrical signals in response to determining that a difference betweenthe first and second positions satisfies a threshold.
 8. Thehead-mounted display device of claim 1, wherein the first set of one ormore lenses remains stationary during and after the moving of the firstdisplay.
 9. The head-mounted display device of claim 1, wherein: thefirst position is selected for first visual data to be displayed by thefirst display; the second position is selected for second visual data tobe displayed by the first display; and the second visual data has afocal plane that is different from a focal plane of the first visualdata.
 10. The head-mounted display device of claim 1, wherein clockwiserotation of the rotatable component moves the first display and/or thefirst set of one or more lenses in a first direction along the firstaxis and counterclockwise rotation of the rotatable component moves thefirst display and/or the first set of one or more lenses in a seconddirection opposite the first direction along the first axis.
 11. Thehead-mounted display device of claim 1, wherein the first electroniccontroller is further configured to: determine a third position of thefirst display and/or the first set of one or more lenses after the firststepper motor attempts to move the first display and/or the first set ofone or more lenses from the first position to the second position, thethird position being different from the first and second positions;determine whether the third position is within a predefined distancefrom the second position; and upon determining that the third positionis not within the predefined distance from the second position, generateone or more additional electrical signals that cause the first steppermotor to move the first display and/or the first set of one or morelenses from the third position to the second position along the firstaxis.
 12. The head-mounted display device of claim 1, wherein: the firstset of one or more lenses is configured to focus light from the firstdisplay along a first optical axis; and the first axis corresponds tothe first optical axis.
 13. The head-mounted display device of claim 1,wherein the first electronic controller is configured to determine thefirst position of the first display and/or the first set of one or morelenses based on a current rotational position of the rotatable componentof the first stepper motor.
 14. The head-mounted display device of claim1, further comprising: a position sensor in communication with the firstelectronic controller, the position sensor being configured to determinea position of the first display and/or the first set of one or morelenses, wherein the first electronic controller is configured to:receive, from the position sensor, the position of the first displayand/or the first set of one or more lenses; and determine the firstposition of the first display and/or the first set of one or more lensesbased on the position of the first display and/or the first set of oneor more lenses received from the position sensor.
 15. The head-mounteddisplay device of claim 1, wherein the first electronic controller isconfigured to determine the first position of the first display and/orthe first set of one or more lenses independent of a position sensor.16. The head-mounted display device of claim 1 wherein the secondelectronic controller is distinct from the first electronic controller.17. The head-mounted display device of claim 1 wherein the secondelectronic controller is configured to determine the first position ofthe second display and/or the second set of one or more lensesindependent of a position sensor.
 18. A method of moving a first displayand/or a first set of one or more lenses and a second display and/or asecond set of one or more lenses in a head-mounted display device, themethod comprising: at a first electronic controller of the head-mounteddisplay device: determining a first position of a first display and/or afirst set of one or more lenses of the head-mounted display device;receiving information identifying a second position of the first displayand/or the first set of one or more lenses; and generating one or moreelectrical signals that cause a first stepper motor of the head-mounteddisplay device to move the first display and/or the first set of one ormore lenses from the first position of the first display and/or thefirst set of one or more lenses to the second position of the firstdisplay and/or the first set of one or more lenses, wherein the firststepper motor is mechanically coupled to the first display and/or thefirst set of one or more lenses; and at a second electronic controllerof the head-mounted display device: determining a first position of thesecond display and/or the second set of one or more lenses of thehead-mounted display device; receiving information identifying a secondposition of the second display and/or the second set of one or morelenses; and generating one or more electrical signals that cause asecond stepper motor of the head-mounted display device to move thesecond display and/or the second set of one or more lenses from thefirst position of the second display and/or the second set of one ormore lenses to the second position of the second display and/or thesecond set of one or more lenses, wherein the second stepper motor ismechanically coupled to the second display and/or the second set of oneor more lenses.
 19. A first electronic controller configured for use ina head-mounted display device, the controller comprising: one or moreprocessors; and memory storing one or more programs for execution by theone or more processors, the one or more programs including instructionsfor: determining a first position of a first display and/or a first setof one or more lenses of the head-mounted display device; receivinginformation identifying a second position of the first display and/orthe first set of one or more lenses; generating one or more electricalsignals that cause a first stepper motor of the head-mounted displaydevice to move the first display and/or the first set of one or morelenses from the first position to the second position, wherein the firststepper motor is mechanically coupled to the first display and/or thefirst set of one or more lenses; determining a first position of asecond display and/or a second set of one or more lenses of thehead-mounted display device; receiving information identifying a secondposition of the second display and/or the second set of one or morelenses; and generating one or more electrical signals that cause asecond stepper motor of the head-mounted display device to move thesecond display and/or the second set of one or more lenses from thefirst position of the second display and/or the second set of one ormore lenses to the second position of the second display and/or thesecond set of one or more lenses, wherein the second stepper motor ismechanically coupled to the second display and/or the second set of oneor more lenses.